package com.bitmain.mmst.domain;

import com.bitmain.mmst.core.base.BasicDomain;

/**
 * 
 *
 * @author Richard - rui.wu@bitmain.com
 * @since 2016年7月22日 
 *
 */
public class MinerDetectDetail extends BasicDomain{
	private static final long serialVersionUID = 7344520187469351511L;
	
	/**
	 * 检测日期，创建分区表用
	 */
	private int date;
	
	/**
	 * 机架ID
	 */
	private long minerShelfId;
	
	/**
	 * 矿机类型Id
	 */
	private long minerTypeId;
	
	/**
	 * 矿机类型
	 */
	private String minerType;
	
	/**
	 * 矿机IP
	 */
	private String minerHost;
	
	/**
	 * 矿机Mac地址
	 */
	private String minerMac;
	
	/**
	 * 矿机端口号
	 */
	private int minerPort;
	
	/**
	 * 检测时间
	 */
	private long detectTime;
	
	/**
	 * 固件编译时间
	 */
	private String compileTime;
	
	/**
	 * 固件版本，根据固件编译时间转换而来
	 */
	private String firmwareVersion;
	
	/**
	 * 矿机频率
	 */
	private int frequency;
	
	/**
	 * 电压
	 */
	private double voltage;
	
	/**
	 * 矿机运行时间
	 */
	private long elapsed;
	
	/**
	 * 实时算力（矿机最近5S平均算力）
	 */
	private Double hashReal;
	
	/**
	 * 平均算力
	 */
	private Double hashAvg;
	private double hardwarePer;
	private long hardwareErr;
	
	/**
	 * 矿机风扇数
	 */
	private int fanNum;
	
	/**
	 * 每个风扇的转速
	 */
	private Integer[] fanSpeeds;
	
	/**
	 * 最小风扇转速
	 */
	private int fanMinSpeed;
	
	/**
	 * 最大风扇转速
	 */
	private int fanMaxSpeed;
	
	/**
	 * 温感数
	 */
	private int tempNum;
	
	/**
	 * 每个温感器的温度
	 */
	private Integer[] tempValues;
	
	/**
	 * 最小温度
	 */
	private int tempMinValue;
	
	/**
	 * 最大温度
	 */
	private int tempMaxValue;
	
	/**
	 * 链条数
	 */
	private int chainNum;
	
	/**
	 * 每个链条的芯片数
	 */
	private Integer[] chainAcns;
	
	/**
	 * 每个链条的芯片分布情况
	 */
	private String[] chainAcss;
	
	/**
	 * 芯片总数（所有链条中x和o的总数）
	 */
	private int chipAllNum;
	
	/**
	 * 实际芯片总数（所有链条中o的总数）
	 */
	private int chipNum;
	
	/**
	 * 爆块数
	 */
	private int foundBlocks;
	
	/**
	 * Share接收数
	 */
	private int difficultyAccepted;
	
	/**
	 * Share拒绝数
	 */
	private int difficultyRejected;
	
	/**
	 * 是否已经同步到minerlink中心
	 */
	private boolean synced;
	
	/**
	 * 最近工作矿池的矿工
	 */
	private String poolUser;
	
	/**
	 * 最近工作矿池的地址
	 */
	private String poolUrl;
	
	/**
	 * 矿池
	 */
	private MinerDetectPool[] pools;
	
	/**
	 * 矿池JSON
	 */
	private String poolsJson;
	
	// 关联查询的字段
	private String minerShelfName; // 机架名称
	private Long minerAreaId; // 矿区ID
	private String minerAreaName; // 矿区名称
	private double hashPass;
	private double hashPassb;


	private String type;
	private Integer[] chipAlives;
	private Integer[] chipAlls;

	private boolean unHash;
	private boolean unFanNum;
	private boolean unFanSpeed;
	private boolean unTempNum;
	private boolean unTempValue;
	private boolean unChipNum;
	private boolean unChainNum;
	private boolean unType;

	
	public int getDate() {
		return date;
	}
	public void setDate(int date) {
		this.date = date;
	}
	public long getMinerShelfId() {
		return minerShelfId;
	}
	public void setMinerShelfId(long minerShelfId) {
		this.minerShelfId = minerShelfId;
	}
	public long getMinerTypeId() {
		return minerTypeId;
	}
	public void setMinerTypeId(long minerTypeId) {
		this.minerTypeId = minerTypeId;
	}
	public String getMinerType() {
		return minerType;
	}
	public void setMinerType(String minerType) {
		this.minerType = minerType;
	}
	public String getMinerHost() {
		return minerHost;
	}
	public void setMinerHost(String minerHost) {
		this.minerHost = minerHost;
	}
	public String getMinerMac() {
		return minerMac;
	}
	public void setMinerMac(String minerMac) {
		this.minerMac = minerMac;
	}
	public int getMinerPort() {
		return minerPort;
	}
	public void setMinerPort(int minerPort) {
		this.minerPort = minerPort;
	}
	public long getDetectTime() {
		return detectTime;
	}
	public void setDetectTime(long detectTime) {
		this.detectTime = detectTime;
	}
	public String getCompileTime() {
		return compileTime;
	}
	public void setCompileTime(String compileTime) {
		this.compileTime = compileTime;
	}
	public String getFirmwareVersion() {
		return firmwareVersion;
	}
	public void setFirmwareVersion(String firmwareVersion) {
		this.firmwareVersion = firmwareVersion;
	}
	public int getFrequency() {
		return frequency;
	}
	public void setFrequency(int frequency) {
		this.frequency = frequency;
	}
	public double getVoltage() {
		return voltage;
	}
	public void setVoltage(double voltage) {
		this.voltage = voltage;
	}
	public long getElapsed() {
		return elapsed;
	}
	public void setElapsed(long elapsed) {
		this.elapsed = elapsed;
	}
	public Double getHashReal() {
		return hashReal;
	}
	public void setHashReal(Double hashReal) {
		this.hashReal = hashReal;
	}
	public Double getHashAvg() {
		return hashAvg;
	}
	public void setHashAvg(Double hashAvg) {
		this.hashAvg = hashAvg;
	}
	public double getHardwarePer() {
		return hardwarePer;
	}
	public void setHardwarePer(double hardwarePer) {
		this.hardwarePer = hardwarePer;
	}
	public long getHardwareErr() {
		return hardwareErr;
	}
	public void setHardwareErr(long hardwareErr) {
		this.hardwareErr = hardwareErr;
	}
	public int getFanNum() {
		return fanNum;
	}
	public void setFanNum(int fanNum) {
		this.fanNum = fanNum;
	}
	public Integer[] getFanSpeeds() {
		return fanSpeeds;
	}
	public void setFanSpeeds(Integer[] fanSpeeds) {
		this.fanSpeeds = fanSpeeds;
	}
	public int getFanMinSpeed() {
		return fanMinSpeed;
	}
	public void setFanMinSpeed(int fanMinSpeed) {
		this.fanMinSpeed = fanMinSpeed;
	}
	public int getFanMaxSpeed() {
		return fanMaxSpeed;
	}
	public void setFanMaxSpeed(int fanMaxSpeed) {
		this.fanMaxSpeed = fanMaxSpeed;
	}
	public int getTempNum() {
		return tempNum;
	}
	public void setTempNum(int tempNum) {
		this.tempNum = tempNum;
	}
	public Integer[] getTempValues() {
		return tempValues;
	}
	public void setTempValues(Integer[] tempValues) {
		this.tempValues = tempValues;
	}
	public int getTempMinValue() {
		return tempMinValue;
	}
	public void setTempMinValue(int tempMinValue) {
		this.tempMinValue = tempMinValue;
	}
	public int getTempMaxValue() {
		return tempMaxValue;
	}
	public void setTempMaxValue(int tempMaxValue) {
		this.tempMaxValue = tempMaxValue;
	}
	public int getChainNum() {
		return chainNum;
	}
	public void setChainNum(int chainNum) {
		this.chainNum = chainNum;
	}
	public Integer[] getChainAcns() {
		return chainAcns;
	}
	public void setChainAcns(Integer[] chainAcns) {
		this.chainAcns = chainAcns;
	}
	public String[] getChainAcss() {
		return chainAcss;
	}
	public void setChainAcss(String[] chainAcss) {
		this.chainAcss = chainAcss;
	}
	public int getChipAllNum() {
		return chipAllNum;
	}
	public void setChipAllNum(int chipAllNum) {
		this.chipAllNum = chipAllNum;
	}
	public int getChipNum() {
		return chipNum;
	}
	public void setChipNum(int chipNum) {
		this.chipNum = chipNum;
	}
	public int getFoundBlocks() {
		return foundBlocks;
	}
	public void setFoundBlocks(int foundBlocks) {
		this.foundBlocks = foundBlocks;
	}
	public int getDifficultyAccepted() {
		return difficultyAccepted;
	}
	public void setDifficultyAccepted(int difficultyAccepted) {
		this.difficultyAccepted = difficultyAccepted;
	}
	public int getDifficultyRejected() {
		return difficultyRejected;
	}
	public void setDifficultyRejected(int difficultyRejected) {
		this.difficultyRejected = difficultyRejected;
	}
	public boolean isSynced() {
		return synced;
	}
	public void setSynced(boolean synced) {
		this.synced = synced;
	}
	public String getMinerShelfName() {
		return minerShelfName;
	}
	public void setMinerShelfName(String minerShelfName) {
		this.minerShelfName = minerShelfName;
	}
	public Long getMinerAreaId() {
		return minerAreaId;
	}
	public void setMinerAreaId(Long minerAreaId) {
		this.minerAreaId = minerAreaId;
	}
	public String getMinerAreaName() {
		return minerAreaName;
	}
	public void setMinerAreaName(String minerAreaName) {
		this.minerAreaName = minerAreaName;
	}
	public double getHashPass() {
		return hashPass;
	}
	public void setHashPass(double hashPass) {
		this.hashPass = hashPass;
	}
	public double getHashPassb() {
		return hashPassb;
	}
	public void setHashPassb(double hashPassb) {
		this.hashPassb = hashPassb;
	}
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	public Integer[] getChipAlives() {
		return chipAlives;
	}
	public void setChipAlives(Integer[] chipAlives) {
		this.chipAlives = chipAlives;
	}
	public Integer[] getChipAlls() {
		return chipAlls;
	}
	public void setChipAlls(Integer[] chipAlls) {
		this.chipAlls = chipAlls;
	}
	public boolean isUnHash() {
		return unHash;
	}
	public void setUnHash(boolean unHash) {
		this.unHash = unHash;
	}
	public boolean isUnFanNum() {
		return unFanNum;
	}
	public void setUnFanNum(boolean unFanNum) {
		this.unFanNum = unFanNum;
	}
	public boolean isUnFanSpeed() {
		return unFanSpeed;
	}
	public void setUnFanSpeed(boolean unFanSpeed) {
		this.unFanSpeed = unFanSpeed;
	}
	public boolean isUnTempNum() {
		return unTempNum;
	}
	public void setUnTempNum(boolean unTempNum) {
		this.unTempNum = unTempNum;
	}
	public boolean isUnTempValue() {
		return unTempValue;
	}
	public void setUnTempValue(boolean unTempValue) {
		this.unTempValue = unTempValue;
	}
	public boolean isUnChipNum() {
		return unChipNum;
	}
	public void setUnChipNum(boolean unChipNum) {
		this.unChipNum = unChipNum;
	}
	public boolean isUnChainNum() {
		return unChainNum;
	}
	public void setUnChainNum(boolean unChainNum) {
		this.unChainNum = unChainNum;
	}
	public boolean isUnType() {
		return unType;
	}
	public void setUnType(boolean unType) {
		this.unType = unType;
	}
	public String getPoolUser() {
		return poolUser;
	}
	public void setPoolUser(String poolUser) {
		this.poolUser = poolUser;
	}
	public String getPoolUrl() {
		return poolUrl;
	}
	public void setPoolUrl(String poolUrl) {
		this.poolUrl = poolUrl;
	}
	public MinerDetectPool[] getPools() {
		return pools;
	}
	public void setPools(MinerDetectPool[] pools) {
		this.pools = pools;
	}
	public String getPoolsJson() {
		return poolsJson;
	}
	public void setPoolsJson(String poolsJson) {
		this.poolsJson = poolsJson;
	}
	
	
}
